package com.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import com.entity.Account;

import java.util.List;

/**
 * ClassName: AccountDao
 * Description:
 *
 * @author L_Z_R
 * @version 1.0
 * @create 2025/04/16 16:20
 */
@Mapper
@Repository
public interface AccountMapper {


    /**
     * 根据用户名和密码查询账号信息
     *
     * @param username 账号名
     * @param pwd      密码
     * @return 返回用户信息对象
     */
    Account selectAccountByUsername(@Param("username") String username, @Param("pwd") String pwd);

    /**
     * 根据用户名查询账号,判断是否存在
     *
     * @param username 用户名
     * @return 返回账号对象
     */
    Account selectByUsername(@Param("username") String username);

    /**
     * 插入账号(注册)
     *
     * @param account 账号对象
     */

    void insertAccount(Account account);

    /**
     * 根据账号Id修改账号权限类型
     * @param accountId 账号Id
     */
    void updateAccount(@Param("accountId") Integer accountId,@Param("accountType") Byte accountType);

    /**
     * 根据用户名修改密码
     *
     * @param username 用户名
     * @param newPwd   新密码
     */
//    void updatePassword(@Param("username") String username,@Param("newPwd") String newPwd);

    /**
     * 获取所有的用户Id
     *
     * @return 返回用户Id集合
     */
    List<Integer> getAllAccountId();

    /**
     * 获取新用户数量
     * @return 新用户数量
     */
    int getNewAccountCount();

    /**
     * 统计用户数量
     * @return 用户数量
     */
    int getAccountCount();

    /**
     * @author: kx
     * @date: 2025/6/18 15:11
     * @param id : 账号id
     * @return com.entity.Account
     * @description: 根据id查询账号信息
    */
    Account findById(@Param("id") Integer id);
}
